#pragma once
#include "DXAMLCommon.h"
#include "PALText.IFontAndScriptServicesFactory.h"

class IPALTextServices
{
public:
	virtual XEDITKEY  TranslateEditKey( InputMessage *pMsg) = 0;
	virtual void      PALSetIsInputMethodEditorEnabled( void *hWnd, XUINT32 fEnableIME) = 0;
	virtual void      PALSetImeConversionMode( void *hWnd, XUINT32 conversionMode) = 0;
	virtual void      PALSetImeState( void *hWnd, XUINT32 imeState) = 0;
	virtual void      PALSetTextCompositionWindow( void *hWnd, XPOINTF point) = 0;
	virtual void      PALCompleteTextComposition( void *hWnd) = 0;
	virtual HRESULT   PALGetTextCompositionString( void *hWnd, XUINT32 fResultString, CXString **ppstrText) = 0;
	virtual HRESULT   PALGetTextCompositionStringAttribute( void *hWnd, XINT32 **ppClauseInfo, XUINT32 *pClauseInfoCount, char **ppAttributes, XUINT32 *pAttributeCount) = 0;
	virtual HRESULT   PALGetTextCompositionPosition( void *hWnd, XUINT32 *pCaretPosition, XUINT32 *pDeltaPosition) = 0;
	virtual void      PALSetInputMethodCandidateWindow( void *hWnd, XRECTF_WH rect, XPOINTF point) = 0;
	virtual void      PALInputMethodConvertToHanja( void *hWnd, WCHAR charCode) = 0;
	virtual XUINT32   PALIsReadingWindowIME() = 0;
	virtual HRESULT   PALGetLayoutLanguage( XUINT32 *pLangID) = 0;
	virtual HRESULT   CreateFontAndScriptServices( PALText::IFontAndScriptServicesFactory **ppFontAndScriptServices) = 0;

};